package com.google.code.jholidays.events.properties;

import com.google.code.jholidays.core.EventDescriptor;
import com.google.code.jholidays.events.IEvent;
import com.google.code.jholidays.events.IFactory;

/**
 * Provides data which can is used to construct events. See
 * {@link AbstractEventProperties} for skeletal implementation.
 * <p>
 * Concrete implementations should encapsulate all needed data for construction
 * of {@link IEvent} instances.
 * 
 * @author tillias
 * @see IFactory
 * @see IEvent
 * 
 */
public interface IEventProperties {
    /**
     * Gets event descriptor stored in this properties object
     * 
     * @return {@link EventDescriptor}
     */
    EventDescriptor getDescriptor();

    /**
     * Gets parent event stored in this properties object
     * 
     * @return Parent event
     */
    IEvent getParent();
}
